<template>
  <div class="cartcontrol">
    <transition name="move">
      <div
        class="iconfont icon-jian"
        v-if="food.count > 0"
        @click.stop="updateFoodCount(false)"
      ></div>
    </transition>
    <div class="cart-count">{{ food.count }}</div>
    <div class="iconfont icon-jia1" @click.stop="updateFoodCount(true)"></div>
  </div>
</template>

<script type="text/ecmascript-6">
import throttle from "lodash/throttle";
export default {
  props: {
    food: Object,
  },
  methods: {
    //#region
    /*  updateFoodCount(isAddFoodCount) {
      /* 
        问题1: 不应该直接在此更新, 这个不是当前组件的
        问题2: 开始count值是undefined

        在action里进行判断。
        
      const food = this.food;
      this.$store.dispatch("updateFoodCount", { isAddFoodCount, food });
    }, 
    */
    //#endregion

    updateFoodCount: throttle(function (isAddFoodCount) {
      //对处理事件的函数做节流处理
      // 要节流的函数的函数不能用箭头函数，要用普通的函数 因为throttle函数要用要节流的函数里的this。而箭头函数里的this指向vm，所以用普通的函数
      // 用lodash库的throttle节流函数做了节流处理  里面的函数不能用箭头函数
      /* 
        问题1: 不应该直接在此更新, 这个不是当前组件的
        问题2: 开始count值是undefined

        在action里进行判断。
        */
      const food = this.food;
      this.$store.dispatch("updateFoodCount", { isAddFoodCount, food });
    }, 500),
  },
};
</script>

<style lang="stylus" rel="stylesheet/stylus" scope>
@import '../../common/stylus/mixins.styl'
.cartcontrol
  font-size 0
  .cart-decrease
    display inline-block
    padding 6px
    line-height 24px
    font-size 24px
    color rgb(0, 160, 220)
  .icon-jian
    display inline-block
    padding 6px
    line-height 24px
    font-size 24px
    color $green
    &.move-enter-active, &.move-leave-active
      transition all 0.5s
    &.move-enter, &.move-leave-to
      opacity 0
      transform translateX(15px) rotate(180deg)
  .cart-count
    display inline-block
    vertical-align top
    width 12px
    padding-top 6px
    line-height 24px
    text-align center
    font-size 10px
    color rgb(147, 153, 159)
  .icon-jia1
    display inline-block
    padding 6px
    line-height 24px
    font-size 24px
    color $green
</style>
